home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d17 / vspool.arc / SPOOL.DOC < prev    next >
Text File  |  1989-03-20  |  30KB  |  859 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                                   Table of Contents
  8.  
  9.  
  10.            1. Overview...................................................2
  11.  
  12.            2. Installation...............................................2
  13.  
  14.            3. Accessing Versa-Spool Once Installed.......................3
  15.  
  16.            4. The Parameters Enumerated..................................4
  17.  
  18.            5. Examples...................................................7
  19.               5.1. To Install............................................8
  20.               5.2. After Installation....................................8
  21.  
  22.            6. Programmer's Corner........................................9
  23.               6.1. Sub-Function 0 : Return Signature.....................9
  24.               6.2. Sub-Function 1 : Toggle Pause.........................9
  25.               6.3. Sub-Function 2 : Clear Buffer.........................9
  26.               6.4. Sub-Function 3 : Request Pause Condition..............9
  27.               6.5. Sub-Function 4 : Request Free Buffer Space............9
  28.               6.6. Sub-Function 5 : Request Total Buffer Size............9
  29.               6.7. Sub-Function 6 : Redirect Output To LPT1:.............9
  30.               6.8. Sub-Function 7 : Redirect Output To LPT2:.............9
  31.               6.9. Sub-Function 8 : Redirect Output To LPT3:.............9
  32.               6.10. Sub-Function 9 : Request Output Device..............10
  33.               6.11. Sub-Function A : Request Output Speed...............10
  34.               6.12. Sub-Function B : Request Device Spooled Status......10
  35.               6.13. Turbo Basic Function Call Examples..................10
  36.  
  37.            7. Business Stuff............................................10
  38.  
  39.            8. User Registration Form....................................12
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.                                           i
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.                                      Versa-Spool
  90.  
  91.                                     Version 1.01
  92.  
  93.                                A multi-printer spooler
  94.                             Copyright 1989 - Jeff Newbro
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.                                           1
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.           1. Overview
  140.  
  141.           Versa-Spool is an extremely versatile print spooler  written  for
  142.           the  IBM-PC/AT  series of computers.   In an effort to anticipate
  143.           all the circumstances under which Versa-Spool may be required  to
  144.           operate,  features  such as multiple buffers,  large buffer size,
  145.           adjustable output speed,  and the ability to redirect  a  printer
  146.           stream  from  one  printer  to another have been implemented.   A
  147.           protocol has been developed  which  will  permit  access  to  the
  148.           operating  parameters  and  current  status of Versa-Spool either
  149.           from the dos prompt,  or from within a program in order to enable
  150.           applications   to   interact  intelligently  with  their  printer
  151.           resources.
  152.  
  153.           Versa-Spool is installed and accessed at the dos prompt with  the
  154.           following syntax :
  155.  
  156.                SPOOL [-option(s)] <enter>
  157.  
  158.             where option is one or more of the following :
  159.               -b{n}      = Buffer size (n=1..Available memory in k)
  160.               -c         = Clear print buffer
  161.               -n{n}      = printer Number (n=1..3)
  162.               -p         = toggle Pause
  163.               -r{n}      = Redirect output to new device (n=1..3)
  164.               -s{n}      = output Speed in cps (default = 100)
  165.               -u{n}      = allocate buffers in Unused memory (n=0..FFFF)
  166.               -v{n}      = offset interrupt Vectors (n=1..6)
  167.               -?         = Show status
  168.  
  169.  
  170.           2. Installation
  171.  
  172.           Versa-Spool  is  a  memory resident program which installs itself
  173.           according to parameters specified by the -b, -n, -s,  -u,  and -v
  174.           options the first time it is executed.   If no value is specified
  175.           for these options,  Versa-Spool will  assume  that  1  buffer,  1
  176.           kilobyte,   and  100  characters  per  second,  are  the  desired
  177.           parameters.
  178.  
  179.           For example,  to install Versa-Spool to provide LPT1:  and  LPT2:
  180.           with  80k  buffers  each,  the  following  command  line would be
  181.           entered :
  182.  
  183.           C:\> spool -n2 -b80 <Enter>
  184.  
  185.           or, for a single 200k buffer for LPT1:, type :
  186.  
  187.           C:\> spool -n1 -b200 <Enter>
  188.  
  189.           It would not be possible to install a single  buffer  for  LPT2:,
  190.           since  the  buffers  are  allocated sequentially,  beginning with
  191.  
  192.                                           2
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.           LPT1:.  It would, however, be possible to install a single buffer
  206.           for LPT1: whose output was redirected to LPT2:.   This  would  be
  207.           accomplished by the following two commands :
  208.  
  209.           C:\> spool -n1 -b100 <Enter>
  210.           C:\> spool -n1 -r2 <Enter>
  211.  
  212.           The  redirection  feature  will  be  discussed  in greater detail
  213.           later.
  214.  
  215.           Once Versa-Spool has installed itself as  a  terminate  and  stay
  216.           resident program (TSR for short),  it will print its installation
  217.           status on the screen and return to dos.   For those who may  want
  218.           to install Versa-Spool with a batch files that checks the success
  219.           of  its  commands,  an  error  level of 0 will be returned if the
  220.           installation was successful,  or 1 if there was an error.   Also,
  221.           for  the  batch  file  programmers,  the  messages printed on the
  222.           screen by Versa-Spool may be piped to the nul  device  if  it  is
  223.           undesirable  for the end user to see them.   For instance a batch
  224.           file containing the lines :
  225.  
  226.           .
  227.           .
  228.           spool -n1 -b100 > nul
  229.           IF ERRORLEVEL 1 GOTO NOGOOD
  230.           .
  231.           .
  232.  
  233.           would install a 100k buffer for LPT1: and show no  message  after
  234.           installation.    If  Versa-Spool did not install itself properly,
  235.           execution would be vectored to the label "NOGOOD",  presumably to
  236.           echo an error message and exit.
  237.  
  238.           Subsequent executions of Versa-Spool will not install another TSR
  239.           copy  of Versa-Spool,  but will rather provide communication with
  240.           the already  installed  TSR  program.    The  protocol  for  this
  241.           communication is described in the "Programmer's Corner" section.
  242.  
  243.  
  244.           3. Accessing Versa-Spool Once Installed
  245.  
  246.           After  the first time Versa-Spool is run,  and its TSR portion is
  247.           loaded, subsequent executions of the program will either cause it
  248.           to print the current status of the resident copy in  response  to
  249.           the  -?  option,  or  attempt  to  modify  its  operating  status
  250.           according to the -c, -p, or -r parameters.
  251.  
  252.           For example, if LPT2: is to be paused for some reason, the line :
  253.  
  254.           C:\> spool -n2 -p <Enter>
  255.  
  256.           would be entered.   Note that in this instance,  the -n parameter
  257.  
  258.                                           3
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.           specifies  the device to be addressed,  rather than the number of
  272.           buffers  to  be  installed.    This  convention  applies  to  all
  273.           executions  of  Versa-Spool  subsequent  to  the  first,  when it
  274.           installs its TSR portion.   The pause option is a toggle,  so  to
  275.           restart the printer, the same line would be re-entered.
  276.  
  277.           Similarly, to clear the buffer for LPT1:, the line :
  278.  
  279.           C:\> spool -n1 -c <Enter>
  280.  
  281.           will  effect  the  desired  result.   Or,  since -n1 is a default
  282.           value, simply :
  283.  
  284.           C:\> spool -c <Enter>
  285.  
  286.           would suffice.
  287.  
  288.  
  289.           4. The Parameters Enumerated
  290.  
  291.           Now that you have the general idea,  here is some  more  specific
  292.           information about the available parameters.
  293.  
  294.                -b   This parameter is only available when installing Versa-
  295.                     Spool.    Most currently available spoolers are limited
  296.                     to 64k, but Versa-Spool permits buffer sizes between 1k
  297.                     and the maximum available memory in your machine  (less
  298.                     64k) to be installed.  When allocating buffers with the
  299.                     -u  parameter,  the  buffer size is restricted by other
  300.                     factors which will be  discussed  later,  but  in  most
  301.                     situations the previously stated rule applies.   During
  302.                     installation,  the default value for this parameter  is
  303.                     1k, and after installation, it cannot be used to modify
  304.                     the TSR portion of Versa-Spool.
  305.  
  306.                -c   The  buffer  selected  by  the  -n  parameter  will  be
  307.                     cleared.   Any other buffers which have been  allocated
  308.                     will  continue  to  function  without  disturbance.   A
  309.                     typical command line would be :
  310.  
  311.                     C:\> spool -n2 -c
  312.  
  313.                     which would clear the contents of the buffer for LPT2:.
  314.                     This   parameter   has   does   not   function   during
  315.                     installation,  but the clearing of a buffer is implicit
  316.                     in the process of its creation.
  317.  
  318.                -n   During installation, the -n option specifies the number
  319.                     of buffers that will be allocated.   Each will  be  the
  320.                     same size,  as specified by the -b option,  and will be
  321.                     assigned sequentially to LPT1:, LPT2: and LPT3:.  Thus,
  322.                     it is not possible to assign a buffer for LPT2: without
  323.  
  324.                                           4
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.                     first assigning one  for  LPT1:.    Once  the  resident
  338.                     portion  of Versa-Spool is installed,  the -n parameter
  339.                     will serve to specify the buffer to which any  commands
  340.                     will  apply.    For  instance,  in order to request the
  341.                     status of the buffer  for  LPT3:,  the  following  line
  342.                     would be typed :
  343.  
  344.                     C:\> spool -n3 -?
  345.  
  346.                     When  the  -n  parameter  is  not  specified,  either 1
  347.                     buffer, or LPT1: will be assumed during installation or
  348.                     subsequent operations, respectively.
  349.  
  350.                -p   Once Versa-Spool is installed, a printer may be paused,
  351.                     if that is desirable.   The -p  option,  which  effects
  352.                     this action, is a "toggle" and invoking it will cause a
  353.                     printing device to pause,  or a paused device to resume
  354.                     printing.
  355.  
  356.                -r   Once installed,  the output from  the  spooler  may  be
  357.                     redirected  from  its  normal  device  to  another LPT:
  358.                     through the use of this parameter.  Thus,  if you had a
  359.                     dot-matrix  printer  attached  to  LPT1:,  and a letter
  360.                     quality printer attached to LPT2:, and a word processor
  361.                     that only printed to LPT1:, you could redirect the word
  362.                     processor output to  LPT2:  through  the  use  of  this
  363.                     option.    The command line for that specific situation
  364.                     would be :
  365.  
  366.                     C:\> spool -n1 -r2 <Enter>
  367.  
  368.                     Also, in database applications where printer speed is a
  369.                     problem because large reports are generated  regularly,
  370.                     Versa-Spool  may  be  used to divide the output between
  371.                     two or three printers to  afford  an  effective  output
  372.                     rate of two or three times that possible with a single,
  373.                     unspooled printer.
  374.  
  375.                     The  -r  option  is  only  available after the resident
  376.                     portion of Versa-Spool has been installed,  and has  no
  377.                     effect during installation.
  378.  
  379.                -s   The output speed parameter determines the efficiency of
  380.                     Versa-Spool  for  the  environment in which it is being
  381.                     used.     Since  Versa-Spool  shares   the   computer's
  382.                     attention with the currently running application, there
  383.                     is a compromise between the rate at which it sends data
  384.                     to the printer(s), and the rate at which it permits the
  385.                     currently running application to perform its functions.
  386.                     Outputting  data  to  the printer at a rate faster than
  387.                     either the computer can process it,  or the printer can
  388.                     accept  it  will  result  in  Versa-Spool  hogging  the
  389.  
  390.                                           5
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.                     computer's  time  to  no  advantage,  and  causing  the
  404.                     application  program to seem unresponsive.   Outputting
  405.                     too slowly,  of course will cause  large  documents  to
  406.                     take  excessive  amounts  of time to print.   Since the
  407.                     circumstances under which Versa-Spool may  be  expected
  408.                     to vary widely, this parameter has been made accessible
  409.                     to  the user.   This parameter is adjustable from 20 to
  410.                     16000 characters per second,  in increments of 20  cps.
  411.                     It  will be some time before hardware is available that
  412.                     will accommodate the  higher  speeds,  but  Versa-Spool
  413.                     will be ready when the time comes.
  414.  
  415.                -u   Although  dos  was  only written to accommodate 640k of
  416.                     main memory, many machines are currently being produced
  417.                     which permit 1000k (1  megabyte)  to  be  installed  on
  418.                     their  motherboards.    The  additional 360k of memory,
  419.                     beginning at hex segment A000 is partially allocated to
  420.                     video board RAM,  extended memory  buffers,  and  other
  421.                     such functions,  but there is frequently 64k or more of
  422.                     contiguous space available in this area.   With the  -u
  423.                     option,  Versa-Spool  may be installed with its buffers
  424.                     allocated in this unused area,  allowing large  buffers
  425.                     to  be  implemented  while  taking  up less than 30k of
  426.                     precious dos space.   It is not  recommended  that  the
  427.                     naive   user   try   to  install  Versa-Spool  in  this
  428.                     configuration,   but  someone  with  light  programming
  429.                     experience  should be able to find between 64k and 192k
  430.                     of unused RAM in the range of segments C000 to F000  in
  431.                     one of these 1 megabyte machines.   Once found,  Versa-
  432.                     Spool  may  be  instructed  to  allocate  its   buffers
  433.                     starting  at a given segment address by entering the -u
  434.                     parameter followed by the HEX address of  the  segment.
  435.                     Segment  addresses  of  less that A000 will be adjusted
  436.                     upward to A000, and if Versa-Spool does not find RAM at
  437.                     the  specified  segment,   an  error  message  will  be
  438.                     displayed   and   the  resident  portion  will  not  be
  439.                     installed.   A typical implementation of such a  buffer
  440.                     would be :
  441.  
  442.                     C:\> spool -n1 -b128 -uD000 <Enter>
  443.  
  444.                     Just  to make it a little easier for the stout at heart
  445.                     who decide to try this,  there should be 64k  available
  446.                     starting  at  E000  in nearly all of these machines and
  447.                     128k starting at D000 in most without extended  memory.
  448.                     It  is  worth  checking below that area,  but many hard
  449.                     disk controllers have a ROM starting at C800 which will
  450.                     interfere with the buffer.
  451.  
  452.                -?   If it is desirable to know the status  of  one  of  the
  453.                     spooled  printers,  this parameter will instruct Versa-
  454.                     Spool to display a detailed report on the screen.  This
  455.  
  456.                                           6
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.                     information includes any redirection  for  the  device,
  470.                     the  output  speed,  buffer  size,  port status,  pause
  471.                     status,  and remaining free space.   This function  may
  472.                     also  be  useful  to  programmers,  as  it  returns the
  473.                     remaining free space (in k) to dos as  an  error  level
  474.                     when  it executes.   Thus it may be used in batch files
  475.                     to test for insufficient buffer space before running  a
  476.                     program which generates large reports.  An example from
  477.                     a batch file which does this follows :
  478.  
  479.                     .
  480.                     .
  481.                     :START
  482.                          REM Get the free space in buffer 1 (send the
  483.                          REM display to nowhere)
  484.                          spool -n1 -? > nul
  485.                          REM If there is 10k or more of free space, print
  486.                          REM the next file
  487.                          IF errorlevel 10 GOTO PRINTDOC
  488.                               REM Do some word processing until the spooler
  489.                               REM is ready
  490.                               wordproc %2
  491.                          :PRINTDOC
  492.                          REM Print the report specified by %1
  493.                          printrep %1
  494.  
  495.                     :NEXT
  496.                     .
  497.                     .
  498.  
  499.                     Of  course,  this  option  is  only  available once the
  500.                     resident portion of Versa-Spool is installed and has no
  501.                     effect during installation.
  502.  
  503.                -v   Many TSR programs use one or  more  of  the  interrupts
  504.                     between  60h and 67h for their resident functions.   So
  505.                     that the two interrupts required by Versa-Spool do  not
  506.                     contend with any of the programs that you normally keep
  507.                     resident,  you  may  install it with its vectors offset
  508.                     from the default 60h and 61h through the  use  of  this
  509.                     parameter.  The example command line :
  510.  
  511.                     C:\> spool -n1 -v3 <Enter>
  512.  
  513.                     would  install  Versa-Spool  with its interrupts at 63h
  514.                     and  64h.     This  option  is  only  available  during
  515.                     installation, and will default to 0 if not specified.
  516.  
  517.  
  518.           5. Examples
  519.  
  520.           Here  are  a  few  more  example command lines to help convey the
  521.  
  522.                                           7
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.           points expressed earlier.
  536.  
  537.  
  538.           5.1. To Install
  539.  
  540.                Command                                 Configuration
  541.  
  542.           C:\> spool                         Show  syntax  for  Versa-Spool
  543.                                              but do not install.
  544.  
  545.           C:\> spool -N2 -B60                Install  Versa-Spool  with 60k
  546.                                              100cps buffers for  LPT1:  and
  547.                                              LPT2:.
  548.  
  549.           C:\> spool -n1 -b350               Install a 350k, 100cps spooler
  550.                                              for LPT1:.
  551.  
  552.           C:\> spool -n1 -b128 -uC800        Install a 128k, 100cps spooler
  553.                                              for   LPT1:  with  its  buffer
  554.                                              starting at hex segment C800.
  555.  
  556.           C:\> spool -s256 -n1 -s200         Install a 256k, 200cps spooler
  557.                                              for LPT1:.
  558.  
  559.  
  560.           5.2. After Installation
  561.  
  562.                Command                                 Effect
  563.  
  564.           C:\> spool -N1 -?                  Show  the  current  status  of
  565.                                              LPT1:
  566.  
  567.           C:\> spool -n1 -c                  Clear the buffer for LPT1:.
  568.  
  569.           C:\> spool -P -N2                  If LPT2: is printing,  it will
  570.                                              pause,   otherwise,   it  will
  571.                                              resume printing.
  572.  
  573.           C:\> spool -n1 -r2                 Redirect the output of logical
  574.                                              LPT1: to physical LPT2:.
  575.  
  576.           Note that the parameters are neither case-sensitive, nor required
  577.           to be in any specific order.  Thus, the lines :
  578.  
  579.           C:\> spool -n1 - C
  580.  
  581.           and
  582.  
  583.           C:\> spool -c -N1
  584.  
  585.           are equivalent.   Also,  throughout the documentation, the prompt
  586.           indicates that the current directory is C:\,  although this is by
  587.  
  588.                                           8
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.           no means required for the proper operation of the program.
  602.  
  603.  
  604.           6. Programmer's Corner
  605.  
  606.           When Versa-Spool is installed, it changes the original interrupts
  607.           17h   and  1Ch  to  60h  and  61h  (plus  an  offset,   if  any),
  608.           respectively, and installs its own interrupt handlers for 17h and
  609.           1Ch.   The new interrupt 1Ch  performs  Versa-Spool's  background
  610.           functions  and then passes control to the original interrupt 1Ch.
  611.           The new interrupt 17h performs a reset (function  2)  immediately
  612.           by  passing  control  to  the original interrupt 17h.   All other
  613.           functions are buffered by Versa-Spool.   The  new  interrupt  17h
  614.           also  has  an  additional  function  not provided by the original
  615.           interrupt,  which may be called from  a  high  level  program  to
  616.           request  the  spooler  status  or  control  the  operation of the
  617.           spooler.   The additional  function  and  its  sub-functions  are
  618.           implemented as follows :
  619.  
  620.           In all cases :
  621.                Interrupt = 17h
  622.                AH = 3                   ( Function # )
  623.                AL = Sub-Function #      ( Sub-Function # )
  624.                DX = Device # (0..2)     ( LPT1:..LPT3: )
  625.  
  626.           6.1. Sub-Function 0 : Return Signature
  627.                Return  Value  :  AX  =  1234  if  Versa-Spool is installed,
  628.                     undefined if not installed.
  629.  
  630.           6.2. Sub-Function 1 : Toggle Pause
  631.                Return Value : AX = 1 if paused, 0 if resumed.
  632.  
  633.           6.3. Sub-Function 2 : Clear Buffer
  634.                Return Value : AX = 0 if cleared, 302h if not.
  635.  
  636.           6.4. Sub-Function 3 : Request Pause Condition
  637.                Return Value : AX = 1 if paused, 0 if resumed.
  638.  
  639.           6.5. Sub-Function 4 : Request Free Buffer Space
  640.                Return Value : AX = Remaining Buffer Space (in Kbytes).
  641.  
  642.           6.6. Sub-Function 5 : Request Total Buffer Size
  643.                Return Value : AX = Total Buffer Size (in Kbytes).
  644.  
  645.           6.7. Sub-Function 6 : Redirect Output To LPT1:
  646.                Return Value : none.
  647.  
  648.           6.8. Sub-Function 7 : Redirect Output To LPT2:
  649.                Return Value : none.
  650.  
  651.           6.9. Sub-Function 8 : Redirect Output To LPT3:
  652.                Return Value : none.
  653.  
  654.                                           9
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.           6.10. Sub-Function 9 : Request Output Device
  669.                Return Value :  AX = Output Device To Which Selected  Device
  670.                     is printing (0..2).
  671.  
  672.           6.11. Sub-Function A : Request Output Speed
  673.                Return Value :  AX = Output Speed in Characters per second.
  674.  
  675.           6.12. Sub-Function B : Request Device Spooled Status
  676.                Return Value : AX = 1 if device is spooled, 0 otherwise.
  677.  
  678.  
  679.           6.13. Turbo Basic Function Call Examples
  680.  
  681.           The  following  Turbo Basic1 code will illustrate the use of some
  682.           of the previous functions.   The same principles exemplified here
  683.           will apply to all languages that permit interrupt calls.
  684.  
  685.                .
  686.                .
  687.                REG 1, &H304             ' AH = 3 AL = 4 (Function 3, Sub-
  688.                                         ' Function 4)
  689.                REG 4, &H0               ' DX = 0 (LPT:1)
  690.                CALL INTERRUPT &H17      ' Call the interrupt
  691.                PRINT "The buffer for LPT1: has ";REG(1);"k free"
  692.  
  693.                REG 1, &H304             ' AX = 304h
  694.                REG 4, &H1               ' DX = 1 (LPT:2)
  695.                CALL INTERRUPT &H17      ' Call the interrupt
  696.                PRINT "The buffer for LPT2: has ";REG(1);"k free"
  697.  
  698.                REG 1, &H307             ' AX = 307h
  699.                REG 4, &H0               ' DX = 0
  700.                CALL INTERRUPT &H17      ' Call the interrupt
  701.                PRINT "The data sent to LPT1: will now be output to LPT2:"
  702.                .
  703.                .
  704.  
  705.  
  706.           7. Business Stuff
  707.  
  708.           This  program is distributed under the ShareWare concept.   Under
  709.           this philosophy you may  run  the  program  for  the  purpose  of
  710.           evaluation  for a reasonable period of time without incurring any
  711.           liability either to purchase a license or be held responsible for
  712.           any copyright violations.   If you decide that the  program  does
  713.           suit  your  purposes,  however,  you  are  obliged  to purchase a
  714.           license to use it and pay a registration fee.   When you register
  715.           your  program,  you  will  receive your own serialized copy which
  716.           --------------------
  717.           1. Turbo Basic is a registered trademark of Borland International
  718.  
  719.  
  720.                                          10
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.           will probably earn you money,  since a commission of 25% is  paid
  734.           to  the licensee whose serial number appears on each registration
  735.           form received.  Thus, if you upload your copy to a bulletin board
  736.           and five people download it and register as licensees,  you  will
  737.           not only have acted in good faith, but made money for having done
  738.           so.  These commissions are paid at the end of each month.
  739.  
  740.           Now that your interests are protected,  the license to use Versa-
  741.           Spool is issued  subject  to  the  conditions  specified  on  the
  742.           registration form, which protect mine.
  743.  
  744.           Thank  you  for your interest in Versa-Spool and I hope you enjoy
  745.           using it as much as I enjoyed writing it for you.
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.                                          11
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.           8. User Registration Form
  800.  
  801.                                 Licensing Conditions
  802.           No warranty is either expressed or implied with regard to  Versa-
  803.           Spool.   The user has more than ample opportunity to evaluate the
  804.           performance of the program under normal operating conditions, and
  805.           the author cannot be expected to  bear  the  consequences  of  an
  806.           improper evaluation.   Further, the author will be held blameless
  807.           for any and all damages arising from the use of  Versa-Spool,  be
  808.           they direct or consequential.
  809.  
  810.           Name :______________________________________________________
  811.  
  812.           Title :_____________________________________________________
  813.  
  814.           Company :___________________________________________________
  815.  
  816.           Address :___________________________________________________
  817.  
  818.           City,State,Zip :____________________________________________
  819.  
  820.           Business Telephone :________________________________________
  821.  
  822.           Serial number of evaluation Versa-Spool :___________________
  823.  
  824.           Where did you obtain the evaluation copy ?
  825.  
  826.           (BBS, Consultant, Magazine, other) : _______________________
  827.  
  828.  
  829.           I have read and agree to the terms of the license agreement :
  830.  
  831.           ________________________________________________ ___/___/___
  832.                        (Signature)                            (Date)
  833.  
  834.  
  835.           Comments or suggestions :___________________________________
  836.  
  837.           ____________________________________________________________
  838.  
  839.           ____________________________________________________________
  840.  
  841.           Please  complete  the  above  form and send it with your check or
  842.           money order for $20 (plus appropriate sales tax in MA) to :
  843.  
  844.                                      Jeff Newbro
  845.                                 267 Lexington Street
  846.                                 East Boston, MA 02128
  847.  
  848.           Assigned Serial # :_________________________ (For office Use)
  849.  
  850.  
  851.  
  852.                                          12
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.